//
// Description: 885. 求组合数 I
// Created by Loading on 2022/5/27.
//

#include <bits/stdc++.h>

using namespace std;

constexpr int N = 2010, MOD = 1e9 + 7;

int c[N][N];

void init() {
    // O(N^2)
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j <= i; ++j) {
            if (!j) {
                // 从 i 个里拿 0 个只有一种方式
                c[i][j] = 1;
            } else {
                // 从 i 个里拿 j 个，将某一个拿出，判断这个拿或不拿，
                // 若不拿，则等同于从 i - 1 个里拿 j 个
                // 若拿，则等同于从 i - 1 个里拿 j - 1 个
                c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % MOD;
            }
        }
    }
}

int main() {
    init();
    int n;
    cin >> n;
    while (n--) {
        int a, b;
        cin >> a >> b;

        cout << c[a][b] << endl;
    }

    return 0;
}